package com.iims.flowable.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.iims.flowable.flow.domain.FlowableForm;
import com.iims.flowable.flow.vo.request.DeployFormRequest;

import java.util.List;

/**
 * 表单
 *
 * @author fanpei
 * @date 2021-04-03
 */
public interface IFlowFormService extends IService<FlowableForm> {
    /**
     * 查询流程表单
     *
     * @param formKey 流程表单ID
     * @return 流程表单
     */
    String selectFlowableFormUIByKey(String formKey);

    /**
     * 查询流程表单
     *
     * @param formKey 流程表单ID
     * @return 流程表单
     */
    FlowableForm selectFlowableFormByKey(String formKey);

    /**
     * 查询流程表单列表
     *
     * @param form 流程表单
     * @return 流程表单集合
     */
    List<FlowableForm> selectFlowableFormList(FlowableForm form);

    /**
     * 新增流程表单
     *
     * @param form 流程表单
     * @return 结果
     */
    int insertFlowableForm(FlowableForm form);

    /**
     * 修改流程表单
     *
     * @param form 流程表单
     * @return 结果
     */
    int updateFlowableForm(FlowableForm form);


    /**
     * 删除流程表单信息
     *
     * @param formKey 流程表单Key
     * @return 结果
     */
    int deleteFlowableFormById(Long formKey);

    /**
     * 校验表单名称是否唯一
     */
    String checkFormNameUnique(FlowableForm form);

    /**
     * 部署表单
     *
     * @param deployRequest
     */
    void deployForm(DeployFormRequest deployRequest);
}
